package com.example.democode01.kotlin

/**
 * 定义一个接口模板，包含 name 和 age 属性，以及两个方法
 */
interface IPerson {
    // 定义 name 属性
    val name: String
    // 定义 age 属性
    var age: Int

    // 定义第一个方法
    fun introduceYourself()

    // 定义第二个方法
    fun celebrateBirthday()
}

interface IMan {
    fun sleep()
}

/**
 * 实现 IPerson 和 IMan 接口的类
 */
class Man(override val name: String, override var age: Int) : IPerson, IMan {
    override fun introduceYourself() {
        println("大家好，我叫 $name，今年 $age 岁。")
    }

    override fun celebrateBirthday() {
        println("$name 庆祝自己又长大一岁啦，现在 $age 岁，生日快乐！")
        age++ // 实际更新年龄
        println("生日后，$name 现在 ${age} 岁了！")
    }

    override fun sleep() {
        println("$name 正在睡觉。")
    }
}


fun main() {
    val man = Man("张三", 20)
    man.introduceYourself()
    man.celebrateBirthday()
    man.sleep()
    // 验证年龄确实被更新了
    println("验证: $man.name 现在 ${man.age} 岁了")
}
